//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.jsyxdl;


import com.jsyxdl.k3cloud.listener.K3CloudHttpService;
import com.jsyxdl.k3cloud.utils.PlmPartOptionUtils;
import com.ty.basic.mapper.annotation.TyplmMapperScan;
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.TyplmEnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication(
        scanBasePackages = {"com.feishu.*","com.jsyxdl","com.ty", "com.hustcad.plm", "cn.hutool.extra.spring", "org.springframework.boot.context.properties"},
        exclude = {MongoAutoConfiguration.class}
)
@ServletComponentScan
@TyplmMapperScan(
        basePackages = {"com.feishu.mapper","com.jsyxdl.mapper","com.ty.*.*.mapper", "com.hustcad.plm.*.mapper", "com.hustcad.plm.*.*.mapper", "com.ty.pdm.*.*.mapper", "com.ty.*.mapper.*", "com.ty.*.mapper"},
        properties = {"safeDelete=true", "safeUpdate=true"}
)
@EnableAsync
@EnableScheduling
@EnableEncryptableProperties
@EnableAspectJAutoProxy(
        exposeProxy = true,
        proxyTargetClass = true
)
@TyplmEnableFeignClients(
        basePackages = {"com.hustcad.plm.pdm.common.service.remote", "com.hustcad.plm.lightweight.service.remote", "com.ty.pdm.business.remote.service", "com.hustcad.plm.middle.caddocapi.remote", "com.hustcad.plm.pdm.filevault.remote.service"}
)
@EnableDiscoveryClient
@PropertySources({@PropertySource("classpath:/config/application.properties")})
public class IntePDMApplication {
    public IntePDMApplication() {
    }

    public static void main(String[] args) {
        SpringApplication.run(IntePDMApplication.class, args);
    }


    @Bean
    public K3CloudHttpService getK3CloudHttpService(){
        return new K3CloudHttpService(null,true);
    }
    @Bean
    public PlmPartOptionUtils getPlmPartOptionUtils(){
        return new PlmPartOptionUtils();
    }
}

